#ifndef GSEDIALOG_H
#define GSEDIALOG_H

#include <QDialog>
#include <QFile>
#include <QSplitter>
#include <QMessageBox>
#include <QSplashScreen>
#include <QSettings>
#include "ui_gsedialog.h"

#include "settingsdialog.h"
#include "aboutgse_dialog.h"

#include <QMap>
class gseDialog : public QMainWindow, public Ui::gseDialog
{
    Q_OBJECT
public:
    explicit gseDialog(QWidget *parent = 0);

    QSettings *settings;
    QSplashScreen *splashscreen;

    QMap <QString, QString> encyclopedia;
    QMap <QString, QString>::iterator iter;
    QMap <QString, QString>::iterator forCheck; // Если итератор получает тотже адрес

    void showOnSplashscreen( QString msg);
    QString fromUtf8( QString str );

    bool findInString(QString whatToSearch, QString whereSearch);

    /* --------- Настройки --------- */

    // Указаны ли значения по умолчанию для ..
    bool  default_themeList_font;     // ..Списка тем
    bool  default_articleText_font;   // .. Статьи

    // Текущие шрифты
    QFont current_themeList_font;   // Список тем
    QFont current_articleText_font; // Статья
    bool  themeList_isDefault;
    bool  articleText_isDefault;

    /* ------------------------------ */

    QString version; // Версия

    /* Диалоги */
    SettingsDialog  *settingsDialog;
    AboutGSE_dialog *aboutDialog;

signals:
    
public slots:
    void on_searchLine_textChanged()
    { searchButton->setDisabled( searchLine->text().isEmpty()); }

    void on_searchButton_clicked();
    void on_themeList_clicked();
    void previewCheckbox_isToggled(bool checked);

    // Пункты подзаголовочного меню
    void on_actionSettings_triggered();             // Настройки
    void on_actionAbout_GSE_2_triggered();          // О программе

    void on_actionCheck_for_updates_2_triggered();  // Проверить на наличие обновлений

    /* -------- Диалог настроек ----------- */
    void changeFont_articleText();
    void changeFont_themeList();

    void settingsDialog_rejected();
    void settingsDialog_accepted();

    void saveSettings();
    void loadSettings();
};

#endif // GSEDIALOG_H
